<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS学习教程</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      line-height: 1.6;
      margin: 0;
      padding: 20px;
      background-color: #f4f4f4;
    }
    
    .container {
      max-width: 800px;
      margin: 0 auto;
      background-color: white;
      padding: 20px;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0,0.1);
    }
    
    h1, h2, h3 {
      color: #333;
    }
    
    h1 {
      text-align: center;
      border-bottom: 2px solid #4CAF50;
      padding-bottom: 10px;
    }
    
    h2 {
      border-left: 4px solid #4CAF50;
      padding-left: 10px;
      margin-top: 30px;
    }
    
    .example {
      background-color: #f9f9f9;
      border: 1px solid #ddd;
      border-radius: 4px;
      padding: 15px;
      margin: 15px 0;
    }
    
    .example-box {
      width: 100px;
      height: 100px;
      margin: 10px;
      display: inline-block;
    }
    
    .box1 {
      background-color: #4CAF50;
    }
    
    .box2 {
      background-color: #2196F3;
      border-radius: 50%;
    }
    
    .box3 {
      background-color: #FF9800;
      transform: rotate(45deg);
    }
    
    .text-example {
      color: #e91e63;
      font-size: 18px;
      font-weight: bold;
    }
    
    .layout-example {
      display: flex;
      justify-content: space-between;
      margin: 20px 0;
    }
    
    .layout-item {
      background-color: #e0e0e0;
      padding: 10px;
      flex: 1;
      margin: 0 5px;
      text-align: center;
    }
    
    code {
      background-color: #eee;
      padding: 2px 5px;
      border-radius: 3px;
      font-family: monospace;
    }
    
    pre {
      background-color: #f5f5f5;
      padding: 15px;
      border-radius: 5px;
      overflow-x: auto;
    }
    
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 15px 0;
    }
    
    table, th, td {
      border: 1px solid #ddd;
    }
    
    th, td {
      padding: 10px;
      text-align: left;
    }
    
    th {
      background-color: #f2f2f2;
    }
  </style>
</head>
<body>
  <div class="container">
    <h1>CSS学习教程</h1>
    
    <h2>什么是CSS？</h2>
    <p>CSS（层叠样式表，Cascading Style Sheets）是一种用来描述HTML或XML（包括如SVG、XHTML等XML子集）文档样式的样式表语言。CSS描述了在浏览器中如何渲染HTML元素。</p>
    
    <h2>CSS的基本语法</h2>
    <p>CSS规则由两个主要部分构成：选择器和声明块。</p>
    <div class="example">
      <pre>
选择器 {
  属性1: 值1;
  属性2: 值2;
  属性3: 值3;
}</pre>
    </div>
    
    <h2>CSS引入方式</h2>
    <h3>1. 内联样式</h3>
    <p>在HTML元素的style属性中直接编写CSS代码：</p>
    <div class="example">
      <code>&lt;h1 style="color: blue; font-size: 24px;"&gt;标题&lt;/h1&gt;</code>
    </div>
    
    <h3>2. 内部样式表</h3>
    <p>在HTML文档的&lt;head&gt;部分使用&lt;style&gt;标签编写CSS代码：</p>
    <div class="example">
      <pre>
&lt;head&gt;
  &lt;style&gt;
    h1 {
      color: blue;
      font-size: 24px;
    }
  &lt;/style&gt;
&lt;/head&gt;</pre>
    </div>
    
    <h3>3. 外部样式表</h3>
    <p>创建一个独立的.css文件，并在HTML文档中使用&lt;link&gt;标签引入：</p>
    <div class="example">
      <pre>
&lt;head&gt;
  &lt;link rel="stylesheet" href="styles.css"&gt;
&lt;/head&gt;</pre>
    </div>
    
    <h2>CSS选择器</h2>
    <table>
      <tr>
        <th>选择器</th>
        <th>示例</th>
        <th>说明</th>
      </tr>
      <tr>
        <td>元素选择器</td>
        <td><code>p { }</code></td>
        <td>选择所有&lt;p&gt;元素</td>
      </tr>
      <tr>
        <td>类选择器</td>
        <td><code>.class { }</code></td>
        <td>选择class属性为"class"的所有元素</td>
      </tr>
      <tr>
        <td>ID选择器</td>
        <td><code>#id { }</code></td>
        <td>选择id属性为"id"的元素</td>
      </tr>
      <tr>
        <td>后代选择器</td>
        <td><code>div p { }</code></td>
        <td>选择div元素内部的所有p元素</td>
      </tr>
      <tr>
        <td>子选择器</td>
        <td><code>div > p { }</code></td>
        <td>选择div元素的直接子元素p</td>
      </tr>
    </table>
    
    <h2>CSS常用属性</h2>
    
    <h3>背景属性</h3>
    <div class="example">
      <div class="example-box box1"></div>
      <pre>
background-color: #4CAF50;
background-image: url('image.jpg');
background-repeat: no-repeat;
background-position: center;</pre>
    </div>
    
    <h3>文本属性</h3>
    <div class="example">
      <p class="text-example">这是一段示例文本</p>
      <pre>
color: #e91e63;
font-size: 18px;
font-weight: bold;
text-align: center;
text-decoration: underline;</pre>
    </div>
    
    <h3>边框属性</h3>
    <div class="example">
      <pre>
border: 2px solid #333;
border-radius: 5px;
border-top: 1px dashed #999;</pre>
    </div>
    
    <h3>盒模型属性</h3>
    <div class="example">
      <pre>
width: 200px;
height: 100px;
padding: 10px;
margin: 20px;
box-sizing: border-box;</pre>
    </div>
    
    <h3>布局属性</h3>
    <div class="layout-example">
      <div class="layout-item">项目1</div>
      <div class="layout-item">项目2</div>
      <div class="layout-item">项目3</div>
    </div>
    <div class="example">
      <pre>
display: flex;
justify-content: space-between;
align-items: center;
float: left;
position: relative;</pre>
    </div>
    
    <h2>CSS3新特性</h2>
    <h3>圆角</h3>
    <div class="example">
      <div class="example-box box2"></div>
      <pre>
border-radius: 50%;</pre>
    </div>
    
    <h3>变换</h3>
    <div class="example">
      <div class="example-box box3"></div>
      <pre>
transform: rotate(45deg);
transform: scale(1.2);
transform: translate(10px, 20px);</pre>
    </div>
    
    <h3>过渡</h3>
    <div class="example">
      <pre>
transition: all 0.3s ease;
transition-property: width;
transition-duration: 1s;</pre>
    </div>
    
    <h3>动画</h3>
    <div class="example">
      <pre>
@keyframes example {
  0% {background-color: red;}
  25% {background-color: yellow;}
  50% {background-color: blue;}
  100% {background-color: green;}
}

.element {
  animation: example 4s infinite;
}</pre>
    </div>
    
    <h2>响应式设计</h2>
    <p>使用媒体查询实现响应式设计：</p>
    <div class="example">
      <pre>
@media screen and (max-width: 600px) {
  .container {
    padding: 10px;
  }
  
  h1 {
    font-size: 24px;
  }
}</pre>
    </div>
    
    <h2>最佳实践</h2>
    <ul>
      <li>使用外部样式表而不是内联样式</li>
      <li>合理组织CSS代码结构</li>
      <li>使用语义化的类名</li>
      <li>避免使用过多的ID选择器</li>
      <li>使用CSS预处理器（如Sass、Less）提高开发效率</li>
      <li>注意浏览器兼容性问题</li>
    </ul>
    
    <h2>总结</h2>
    <p>CSS是前端开发中不可或缺的一部分，掌握CSS对于创建美观、响应式的网页至关重要。通过不断练习和学习新的CSS特性，您可以创建出更加丰富和吸引人的用户界面。</p>
  </div>
</body>
</html>
